<?xml version='1.0' encoding='ISO-8859-1' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:p="http://primefaces.org/ui"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:ui="http://java.sun.com/jsf/facelets">

    <h:head>

        <title>Programas</title>

    </h:head>

    <ui:composition template="/index.xhtml">  
        <ui:define name="conteudo">  
            <f:view>
                <h:body>
                    <h:form id="formProgramas" >

                        <p:growl autoUpdate="true" showDetail="true"/>

                        <p:panel header="Programas">
                            <p:dataTable id="dtProgramas"
                                         var="item" 
                                         value="#{programaBean.programas}" 
                                         selectionMode="single" 
                                         selection="#{programaBean.programa}"
                                         rowKey="#{item.id}"
                                         emptyMessage="N&atilde;o h&aacute; dados">

                                <!--Eventos -->

                                <!--Períodos-->

                                <p:ajax event="rowSelect" 
                                        listener="#{programaPeriodoBean.buscarPeriodosPorPrograma}"
                                        update=":formProgramas:dtProgramasPeriodo 
                                        :formProgramas:dtAcoes 
                                        :formProgramas:dtPrevisoes" />

                                <p:ajax  event="rowUnselect" 
                                         listener="#{programaPeriodoBean.buscarPeriodosPorPrograma}"
                                         update=":formProgramas:dtProgramasPeriodo 
                                         :formProgramas:dtAcoes 
                                         :formProgramas:dtPrevisoes" />

                                <p:ajax  event="rowUnselect" 
                                         listener="#{periodoDeProgramaBean.cancelar}"
                                         update=":formProgramas:dtProgramasPeriodo
                                         :formProgramas:dtPrevisoes" />
                                <!--Ações-->

                                <p:ajax event="rowSelect" 
                                        listener="#{acaoBean.buscarAcoesPorPeriodoDePrograma}"
                                        update=":formProgramas:dtProgramasPeriodo 
                                        :formProgramas:dtAcoes 
                                        :formProgramas:dtPrevisoes"/>

                                <p:ajax  event="rowUnselect" 
                                         listener="#{acaoBean.buscarAcoesPorPeriodoDePrograma}"
                                         update=":formProgramas:dtAcoes" />

                                <p:ajax  event="rowUnselect" 
                                         listener="#{acaoBean.cancelar}"
                                         update=":formProgramas:dtAcoes" />

                                <!-- Previsões Financeiras-->

                                <p:ajax event="rowSelect" 
                                        listener="#{previsaoFinanceiraBean.buscarPrevisoesPorAcao}"
                                        update=":formProgramas:dtProgramasPeriodo
                                        :formProgramas:dtAcoes 
                                        :formProgramas:dtPrevisoes" />

                                <p:ajax  event="rowUnselect" 
                                         listener="#{previsaoFinanceiraBean.buscarPrevisoesPorAcao}"
                                         update=":formProgramas:dtAcoes" />

                                <p:ajax  event="rowUnselect" 
                                         listener="#{previsaoFinanceiraBean.cancelar}"
                                         update=":formProgramas:dtPrevisoes" />

                                <p:column headerText="C&oacute;digo" 
                                          style="width: 50px"> 
                                    <center>
                                        <h:outputText value="#{item.codigo}" />
                                    </center>
                                </p:column> 

                                <p:column headerText="Descri&ccedil;&atilde;o" > 
                                    <h:outputText value="#{item.descricao}" />
                                </p:column>  

                            </p:dataTable>

                            <br/>

                            <!-- Bot�es para o CRUD -->

                            <p:commandButton icon="ui-icon-document"
                                             value="Novo" 
                                             actionListener="#{programaBean.adicionarInicio}"
                                             oncomplete="dlgPrograma.show()" 
                                             update=":display" />

                            <p:commandButton icon="ui-icon-pencil"
                                             value="Editar" 
                                             actionListener="#{programaBean.editarInicio}"
                                             update=":display"/>

                            <p:commandButton icon="ui-icon-close"
                                             value="Excluir"
                                             actionListener="#{programaBean.excluirInicio}"/>

                        </p:panel>

                        <p:panel header="Per&iacute;odos" >

                            <p:dataTable id="dtProgramasPeriodo"
                                         var="item" 
                                         value="#{programaPeriodoBean.programasPeriodo}" 
                                         selectionMode="single" 
                                         selection="#{programaPeriodoBean.programaPeriodo}"
                                         rowKey="#{item.id}"
                                         emptyMessage="N&atilde;o h&aacute; dados">

                                <!--Eventos -->

                                <!--Ações-->

                                <p:ajax event="rowSelect" 
                                        listener="#{acaoBean.buscarAcoesPorPeriodoDePrograma}"
                                        update=":formProgramas:dtAcoes 
                                        :formProgramas:dtPrevisoes" />

                                <p:ajax  event="rowUnselect" 
                                         listener="#{acaoBean.buscarAcoesPorPeriodoDePrograma}"
                                         update=":formProgramas:dtAcoes 
                                         :formProgramas:dtPrevisoes"  />

                                <p:ajax  event="rowUnselect" 
                                         listener="#{acaoBean.cancelar}"
                                         update=":formProgramas:dtAcoes 
                                         :formProgramas:dtPrevisoes"  />

                                <!--Previsões Financeiras-->

                                <p:ajax event="rowSelect" 
                                        listener="#{previsaoFinanceiraBean.buscarPrevisoesPorAcao}"
                                        update=":formProgramas:dtProgramasPeriodo 
                                        :formProgramas:dtAcoes 
                                        :formProgramas:dtPrevisoes" />

                                <p:ajax  event="rowUnselect" 
                                         listener="#{previsaoFinanceiraBean.buscarPrevisoesPorAcao}"
                                         update=":formProgramas:dtAcoes" />

                                <p:ajax  event="rowUnselect" 
                                         listener="#{previsaoFinanceiraBean.cancelar}"
                                         update=":formProgramas:dtPrevisoes" />

                                <p:column headerText="Ano Inicial" > 

                                    <h:outputText value="#{item.periodoDePrograma.anoInicial}" />

                                </p:column> 

                                <p:column headerText="Ano Final" > 

                                    <h:outputText value="#{item.periodoDePrograma.anoFinal}" />

                                </p:column>  

                            </p:dataTable>

                            <br/>

                            <p:commandButton icon="ui-icon-document"
                                             value="Novo" 
                                             actionListener="#{programaPeriodoBean.adicionarInicio}" 
                                             />

                            <p:commandButton value="Excluir" 
                                             icon="ui-icon-close"
                                             actionListener="#{programaPeriodoBean.excluirInicio}" />

                        </p:panel>

                        <table width="100%" valign="top" >

                            <tr width="100%" >

                                <td width="50%" >

                                    <p:panel header="A&ccedil;&otilde;es" >

                                        <p:dataTable id="dtAcoes"
                                                     var="item" 
                                                     value="#{acaoBean.acoes}" 
                                                     selectionMode="single" 
                                                     selection="#{acaoBean.acao}"
                                                     rowKey="#{item.id}"
                                                     emptyMessage="N&atilde;o h&aacute; dados">

                                            <!--Eventos -->

                                            <!-- Previsões Financeiras-->

                                            <p:ajax event="rowSelect" 
                                                    listener="#{previsaoFinanceiraBean.buscarPrevisoesPorAcao}" 
                                                    update=":formProgramas:dtPrevisoes" />

                                            <p:ajax  event="rowUnselect" 
                                                     listener="#{previsaoFinanceiraBean.buscarPrevisoesPorAcao}" 
                                                     update=":formProgramas:dtPrevisoes"  />

                                            <p:ajax  event="rowUnselect" 
                                                     listener="#{previsaoFinanceiraBean.cancelar}" 
                                                     update=":formProgramas:dtPrevisoes"  />

                                            <p:column headerText="Descri&ccedil;&atilde;o" 
                                                      style="white-space:normal !important;" >

                                                <h:outputText value="#{item.descricao}" />

                                            </p:column>

                                        </p:dataTable>

                                        <br/>

                                        <p:commandButton icon="ui-icon-document"
                                                         value="Novo" 
                                                         actionListener="#{acaoBean.adicionarInicio}" 
                                                         update=":displayAcao" />

                                        <p:commandButton icon="ui-icon-pencil" 
                                                         value="Editar" 
                                                         actionListener="#{acaoBean.editarInicio}" 
                                                         update=":displayAcao" />

                                        <p:commandButton icon="ui-icon-close" 
                                                         value="Excluir" 
                                                         actionListener="#{acaoBean.excluirInicio}"  />

                                    </p:panel>

                                </td>

                                <td width="50%" valign="top" >

                                    <p:panel id="panelPrevisoes" header="Previs&otilde;es" >

                                        <p:dataTable id="dtPrevisoes" 
                                                     var="previsao" 
                                                     value="#{previsaoFinanceiraBean.previsoesFinanceira}"
                                                     emptyMessage="N&atilde;o h&aacute; dados" 
                                                     selection="#{previsaoFinanceiraBean.previsaoFinanceira}" 
                                                     selectionMode="single" 
                                                     rowKey="#{previsao.id}" 
                                                     style="width: 100%;" >

                                            <p:column headerText="Fonte de Recurso" 
                                                      style="white-space:normal !important;">

                                                #{previsao.fonteDeRecurso.descricao}

                                            </p:column>

                                            <p:column headerText="Total">
                                                <h:outputText value="#{previsao.ano1 + previsao.ano2 + previsao.ano3 + previsao.ano4}">
                                                    <f:convertNumber type="currency" currencySymbol="R$" />
                                                </h:outputText>
                                            </p:column>

                                        </p:dataTable>

                                        <br/>
                                        <p:commandButton icon="ui-icon-document" 
                                                         value="Novo" 
                                                         action="#{previsaoFinanceiraBean.adicionarInicio}" 
                                                         update=":panelAddPrevisao" />

                                        <p:commandButton icon="ui-icon-pencil" 
                                                         value="Editar" 
                                                         action="#{previsaoFinanceiraBean.editarInicio}" 
                                                         update=":panelAddPrevisao"/>

                                        <p:commandButton icon="ui-icon-close"
                                                         value="Excluir"
                                                         actionListener="#{previsaoFinanceiraBean.excluirInicio}"/>

                                    </p:panel>

                                </td>

                            </tr>

                        </table>


                    </h:form>

                    <!-- DIALOG PARA A ADIÇÃO OU EDIÇÂO DE PROGRAMAS -->

                    <p:dialog header="Programa" 
                              widgetVar="dlgPrograma" 
                              appendToBody="true" 
                              showEffect="clip"
                              hideEffect="clip"
                              dynamic="true"
                              modal="true"
                              resizable="false">

                        <h:panelGrid id="display"
                                     style="width: 400px">

                            <ui:include src="Programa.xhtml" />

                        </h:panelGrid>

                    </p:dialog>

                    <!-- DIALOG PARA A ADIÇÃO DE PERÍODOS DE PERÍODOS DE PROGRAMAS -->

                    <p:dialog header="Período do Programa" 
                              widgetVar="dlgPeriodoDePrograma" 
                              appendToBody="true" 
                              showEffect="clip"
                              hideEffect="clip"
                              dynamic="true"
                              modal="true"
                              resizable="false">

                        <h:panelGrid id="displayPeriodoDePrograma"
                                     style="width: 400px">

                            <ui:include src="../periodo-de-programa/PeriodoDePrograma.xhtml" />

                        </h:panelGrid>

                    </p:dialog>

                    <!-- DIALOG PARA A ADIÇÃO DE PERÍODOS DE AÇÕES -->

                    <p:dialog header="Ação" 
                              widgetVar="dlgAcao" 
                              appendToBody="true" 
                              showEffect="clip"
                              hideEffect="clip"
                              dynamic="true"
                              modal="true"
                              resizable="false" >

                        <h:panelGrid id="displayAcao"
                                     style="width: 400px">

                            <ui:include src="../acao/Acao.xhtml" />

                        </h:panelGrid>

                    </p:dialog>

                    <p:dialog widgetVar="dlgAddProgramaPeriodo" 
                              header="Per&iacute;odos"
                              appendToBody="true" 
                              showEffect="clip"
                              hideEffect="clip"
                              modal="true"
                              resizable="false">


                        <!-- DIALOG PARA ADICIONAR NOVOS PERÍODOS A UM PROGRAMA
                        
                             TAMBÉM TEM UMA OPÇÃO PARA INERIR NOVOS PERÍODOS
                             
                        -->

                        <h:form id="formProgramaPeriodo" >

                            <h:panelGrid id="displayAddProgramaPeriodo" style="width: 300px" >

                                <p:dataTable id="dtPeriodos" var="item" 
                                             value="#{periodoDeProgramaBean.periodosDePrograma}"
                                             selection="#{programaPeriodoBean.programaPeriodo.periodoDePrograma}"
                                             emptyMessage="N&atilde;o h&aacute; dados" 
                                             selectionMode="single" rowKey="#{item.id}">

                                    <p:column headerText="Periodos cadastrados" >
                                        #{item}
                                    </p:column> 

                                    <p:column headerText="Tipo de Per&iacaute;odo" >
                                        #{item.tipoDePeriodo}
                                    </p:column>

                                </p:dataTable>

                            </h:panelGrid>

                            <p:commandButton icon="ui-icon-plus" 
                                             actionListener="#{programaPeriodoBean.adicionarEditarFim}" 
                                             update=":formProgramaPeriodo:dtPeriodos 
                                                     :formProgramas:dtProgramasPeriodo" 
                                             title="adicionar esse per&iacute;odo ao programa" />

                            <p:commandButton icon="ui-icon-document" 
                                             actionListener="#{periodoDeProgramaBean.adicionarInicio}" 
                                             update=":displayPeriodoDePrograma" 
                                             oncomplete="dlgPeriodoDePrograma.show()"
                                             title="criar um novo per&iacute;odo de programa" />

                        </h:form>

                    </p:dialog>

                    <!-- DIALOG PARA A ADIÇÃO DE GESTORES -->

                    <p:dialog header="Gestor" 
                              widgetVar="dlgAddGestor"
                              appendToBody="true" 
                              showEffect="clip"
                              hideEffect="clip"
                              modal="true"
                              resizable="false" >

                        <p:ajax event="close" update=":formAcao:cbxGestores" />

                        <h:panelGrid id="panelAddGestor">

                            <script language="JavaScript" src = "scripts/script.js"/>
                            <!-- <ui:include src="Gestor.xhtml" /> -->

                            ESPEREANDO RENATO TERMINAR A TELA...

                        </h:panelGrid>

                    </p:dialog>

                    <!-- DIALOG PARA A ADIÇÃO DE UNIDADES DE MEDIDA -->

                    <p:dialog header="Unidade de Medida" 
                              widgetVar="dlgAddUnidadeDeMedida" 
                              appendToBody="true" 
                              showEffect="clip"
                              hideEffect="clip"
                              modal="true"
                              resizable="false" >

                        <p:ajax event="close" update=":formAcao:cbxUnidadesDeMedida" />

                        <h:panelGrid id="panelAddUnidadeDeMedida">

                            <script language="JavaScript" src = "scripts/script.js"/>
                            <ui:include src="../unidade-medida/UnidadeDeMedida.xhtml" />

                        </h:panelGrid>

                    </p:dialog>

                    <!-- DIALOG PARA A ADIÇÃO DE REGIÕES -->

                    <p:dialog header="Região" 
                              widgetVar="dlgRegiao" 
                              appendToBody="true" 
                              showEffect="clip"
                              hideEffect="clip"
                              modal="true"
                              resizable="false" >

                        <p:ajax event="close" update=":formAcao:dtRegioes" />

                        <h:panelGrid id="panelAddRegiao">

                            <script language="JavaScript" src = "scripts/script.js"/>
                            <ui:include src="../regiao/Regiao.xhtml" />

                        </h:panelGrid>

                    </p:dialog>

                    <!-- DIALOG PARA A ADIÇÃO DE PREVISÕES FINANCEIRAS -->

                    <p:dialog header="Previsão Financeira" 
                              widgetVar="dlgPrevisaoFinanceira" 
                              appendToBody="true" 
                              showEffect="clip"
                              hideEffect="clip"
                              modal="true"
                              resizable="false" >

                        <p:ajax event="close" update=":formProgramas:dtPrevisoes" />

                        <h:panelGrid id="panelAddPrevisao">

                            <script language="JavaScript" src = "scripts/script.js"/>
                            <ui:include src="../previsao-financeira/PrevisaoFinanceira.xhtml" />

                        </h:panelGrid>

                    </p:dialog>

                    <!-- PARA CONFIRMAR A EXCLUSÃO DE UM PROGRAMA -->

                    <p:confirmDialog  message="Deseja excluir esse registro?"
                                      severity="alert"
                                      header="Exclus&atilde;o" 
                                      widgetVar="dlgExcluirPrograma" 
                                      appendToBody="true">  

                        <h:form>

                            <p:commandButton id="confirm" 
                                             value="Sim" 
                                             actionListener="#{programaBean.excluirFim}" 
                                             update=":formProgramas:dtProgramas"/>  

                            <p:commandButton id="decline"
                                             value="N&atilde;o" 
                                             onclick="dlgExcluirPrograma.hide();"
                                             actionListener="#{programaBean.cancelar}" 
                                             update=":formProgramas:dtProgramas" />   

                        </h:form>

                    </p:confirmDialog>
                    
                    <!-- PARA CONFIRMAR A EXCLUSÃO DE UM PROGRAMA_PERÍODO -->

                    <p:confirmDialog  message="Deseja excluir esse registro?"
                                      severity="alert"
                                      header="Exclus&atilde;o" 
                                      widgetVar="dlgExcluirProgramaPeriodo" 
                                      appendToBody="true">  

                        <h:form>

                            <p:commandButton id="confirm" 
                                             value="Sim" 
                                             actionListener="#{programaPeriodoBean.excluirFim}" 
                                             update=":formProgramas:dtProgramasPeriodo"/>  

                            <p:commandButton id="decline"
                                             value="N&atilde;o" 
                                             onclick="dlgExcluirProgramaPeriodo.hide();"
                                             actionListener="#{programaPeriodoBean.cancelar}" 
                                             update=":formProgramas:dtProgramasPeriodo" />   

                        </h:form>

                    </p:confirmDialog>
                    
                     <!-- PARA CONFIRMAR A EXCLUSÃO DE UMA AÇÃO -->

                    <p:confirmDialog  message="Deseja excluir esse registro?"
                                      severity="alert"
                                      header="Exclus&atilde;o" 
                                      widgetVar="dlgExcluirAcao" 
                                      appendToBody="true">  

                        <h:form>

                            <p:commandButton id="confirm" 
                                             value="Sim" 
                                             actionListener="#{acaoBean.excluirFim}" 
                                             update=":formProgramas:dtAcoes"/>  

                            <p:commandButton id="decline"
                                             value="N&atilde;o" 
                                             onclick="dlgExcluirAcao.hide();"
                                             actionListener="#{acaoBean.cancelar}" 
                                             update=":formProgramas:dtAcoes" />   

                        </h:form>

                    </p:confirmDialog>

                    <!-- PARA CONFIRMAR A EXCLUSÃO DE UMA PREVISÃO FINANCEIRA -->

                    <p:confirmDialog  message="Deseja excluir esse registro?"
                                      severity="alert"
                                      header="Exclus&atilde;o" 
                                      widgetVar="dlgExcluirPrevisaoFinanceira" 
                                      appendToBody="true">  

                        <h:form>

                            <p:commandButton id="confirm" 
                                             value="Sim" 
                                             actionListener="#{previsaoFinanceiraBean.excluirFim}" 
                                             update=":formProgramas:dtPrevisoes"/>  

                            <p:commandButton id="decline"
                                             value="N&atilde;o" 
                                             onclick="dlgExcluirPrevisaoFinanceira.hide();"
                                             actionListener="#{previsaoFinanceiraBean.cancelar}" 
                                             update=":formProgramas:dtPrevisoes" />   

                        </h:form>

                    </p:confirmDialog>
                    
                    
                    <!-- PARA CONFIRMAR A EXCLUSÃO DE UMA REGIÃO (DENTRO DA TELA DE AÇÃO) -->

                    <p:confirmDialog  message="Deseja excluir esse registro?"
                                      severity="alert"
                                      header="Exclus&atilde;o" 
                                      widgetVar="dlgExcluirRegiao" 
                                      appendToBody="true">  

                        <h:form>

                            <p:commandButton id="confirm" 
                                             value="Sim" 
                                             actionListener="#{regiaoBean.excluirFim}" 
                                             update=":formAcao:dtRegioes"/>  

                            <p:commandButton id="decline"
                                             value="N&atilde;o" 
                                             onclick="dlgExcluirRegiao.hide();"
                                             actionListener="#{regiaoBean.cancelar}" 
                                             update=":formAcao:dtRegioes" />   

                        </h:form>

                    </p:confirmDialog>

                </h:body>
            </f:view>
        </ui:define>
    </ui:composition>

</html>

